Rendering is the process of generating an image from a model such as a three-dimensional terrain model by means of a computer programme. The three-dimensional terrain model to be rendered can be a grid comprising elevation data, such as a Digital Elevation Model (DEM), a Digital Surface Model (DSM) or a Digital Terrain Model (DTM). The digital model may comprise data of a limited area, such as a model of a particular city or landscape, as well as a model of a continent or even the complete Earth.
Computer rendering of three-dimensional terrain images is generally known from prior art: U.S. Pat. No. 7,551,172 B2 discloses a method for sending information representing three-dimensional images over a network, and U.S. Pat. No. 6,496,189 B1 discloses a method and apparatus for displaying images of an area as seen from an interactively chosen observation point on a remote device.
When rendering large three-dimensional data, particularly in a mobile device, the transfer speed of the data can become limiting factors. Recently, in new portable mobile electronic devices, such as Smartphones or tablet computers, the memory for storing data and the computing capacities have largely increased. However, normally the memory of the devices is still too small for storing all of the needed data for rendering a three-dimensional map in the memory at the same time. Therefore, it is important to partition the data in such a way that not all of the data needs to be stored in the memory of the device. If the network for the provision of the data is slow, for instance in the case of a slow wireless internet connection, it may take too long to transfer all of the data over the network for an efficient use of the data, e. g. for navigation purposes.
A common solution is to subdivide the data into smaller data blocks, wherein each of the data blocks describes a section of the data. Additionally, it is a common solution to create data blocks with several representation versions of each section, the representation versions having different detail levels. This allows describing a collection of data blocks having detail levels that can be used to render the data with sufficient quality, while still only a fraction of the original size of the complete data set has to be load or transferred.
In a common method for rendering three-dimensional terrain data, a tree structure is used, which divides the data into tiles and different levels of detail, wherein each level of detail comprises more information than the previous one, thus allowing zooming in or out while keeping the rendering quality and preserving the amount of memory needed on the device.
The usual way in known methods is to load all data sections from the lowest to the highest detail level while traversing down a tree structure, thus loading the higher detail levels only after the lower detail levels already have been loaded and displayed. With this known solution always some data—even if of a low detail level—is displayable, thus avoiding “holes” in the representation. However, it may instead be preferred that the amount of transferred data is as small as possible, especially when the data is transferred over a slow network connection.